﻿using System;
using System.Diagnostics.Contracts;
using System.Web;

namespace OpenWaves.Web.ImageTransformations
{
    [ContractClass(typeof(WebImageTransformationModuleImplementationContract))]
    public interface IWebImageTransformationModuleImplementation
    {
        bool PostAuthorizeRequest(HttpContextBase context);
    }

    [ContractClassFor(typeof(IWebImageTransformationModuleImplementation))]
    abstract class WebImageTransformationModuleImplementationContract : IWebImageTransformationModuleImplementation
    {
        public bool PostAuthorizeRequest(HttpContextBase context)
        {
            Contract.Requires<ArgumentNullException>(context != null);

            throw new System.NotImplementedException();
        }
    }
}